草庐IT

php - preg_match 的正则表达式

全部标签

ruby - 将 Ruby 正则表达式拆分为多行

这可能不是您所期待的问题!我不想要一个匹配换行符的正则表达式;相反,我想写一个很长的正则表达式,为了可读性,我想分成多行代码。类似于:"bar"=~/(foo|bar)/#Doesn'twork!#=>nil.Wouldlike=>0可以吗? 最佳答案 将%r与x选项一起使用是执行此操作的首选方法。请参阅githubruby​​样式指南中的示例regexp=%r{start#sometext\s#whitespacechar(group)#firstgroup(?:alt1|alt2)#somealternationend}xreg

ruby - 为什么表达式 (true == true == true) 会产生语法错误?

ruby:true==true==truesyntaxerror,unexpectedtEQ对比JavaScript:true==true==true//=>true对比C:1==1==1//=>1 最佳答案 关联方向控制运算符对其参数求值的顺序,未为==定义。方法,与===相同,!=,=~和方法也是如此(所有方法都具有相同的优先级,并且专门形成一个单独的优先级组)。Documentation因此,如果上述列表中的多个运算符被链接成一行,则应通过任一方式显式设置评估顺序括号():(true==true)==true#=>truetr

ruby - 检查字符串是否与 ruby​​ 中的正则表达式匹配的最快方法?

检查字符串是否与Ruby中的正则表达式匹配的最快方法是什么?我的问题是我必须“egrep”一个巨大的字符串列表以找到哪些匹配运行时给定的正则表达式。我只关心字符串是否匹配正则表达式,不关心匹配到哪里,也不关心匹配组的内容是什么。我希望这个假设可以用来减少我的代码花在匹配上的时间正则表达式。我加载正则表达式pattern=Regexp.new(ptx).freeze我发现string=~pattern比string.match(pattern)稍快。是否有其他技巧或快捷方式可用于使此测试更快? 最佳答案 从Ruby2.4.0开始,您可

ruby - Ruby 正则表达式是否有像 Perl 中的 "!~"这样的不匹配运算符?

我只想知道ruby​​正则表达式是否有不匹配运算符,就像!~一样在perl中。感觉用起来不方便(?!xxx)或(?因为你不能在xxx中使用正则表达式模式部分。 最佳答案 是的:!~工作得很好——你可能认为它不会因为it’smissingfromthedocumentationpageofRegexp.尽管如此,它还是有效的:irb(main):001:0>'x'!~/x/=>falseirb(main):002:0>'x'!~/y/=>true 关于ruby-Ruby正则表达式是否有像P

ruby - 如何使用正则表达式和反向引用编写 Ruby switch 语句(case...when)?

我知道我可以编写Rubycase语句来检查与正则表达式的匹配。但是,我想在返回语句中使用匹配数据。像这样的半伪代码:foo="10/10/2011"casefoowhen/^([0-9][0-9])/print"themonthis#{match[1]}"elseprint"somethingelse"end我怎样才能做到这一点?谢谢!请注意:我知道我永远不会在上述简单情况下使用switch语句,但这只是一个示例。实际上,我试图实现的是为一个可以用各种方式编写的日期匹配许多潜在的正则表达式,然后相应地使用Ruby的Date类对其进行解析。 最佳答案

ruby-on-rails - RoR 4 中带验证的正则表达式

有如下代码:classProduct它有效,但是当我尝试使用“raketest”对其进行测试时,我会收到此消息:rakeaborted!Theprovidedregularexpressionisusingmultilineanchors(^or$),whichmaypresentasecurityrisk.Didyoumeantouse\Aand\z,orforgottoaddthe:multiline=>trueoption?这是什么意思?我该如何解决? 最佳答案 ^和$是StartofLine和EndofLineanchor。

ruby - 返回 Ruby 正则表达式的第一个匹配项

我正在寻找一种在Ruby中对字符串执行正则表达式匹配并使其在第一个匹配项时短路的方法。我正在处理的字符串很长,从标准方式(match方法)来看,它会处理整个字符串,收集每个匹配项,并返回一个包含所有匹配项的MatchData对象。match=string.match(/regex/)[0].to_s 最佳答案 你可以试试String#[](如variableName[/regularexpression/])。这是IRB的示例输出:names="erikkallejohananderserikkallejohananders"#=>

使用变量名的 Ruby 正则表达式

是否可以在ruby​​中创建/使用基于变量名值的正则表达式模式?例如,我们都知道我们可以使用Ruby字符串执行以下操作:str="mystring"str2="Thisis#{str}"#=>"Thisismystring"我想用正则表达式做同样的事情:var="Value"str="atestValue"str.gsub(/#{var}/,'foo')#=>"atestfoo"显然,这并不像列出的那样工作,我只是把它放在那里作为一个例子来展示我想做什么。我需要根据变量内容的值进行正则表达式匹配。 最佳答案 您认为行不通的代码:va

ruby - 将字符串转换为正则表达式 ruby

我需要将像“/[\w\s]+/”这样的字符串转换为正则表达式。"/[\w\s]+/"=>/[\w\s]+/我尝试使用不同的Regexp方法,例如:Regexp.new("/[\w\s]+/")=>/\/[w]+\//,类似Regexp.compile和Regexp.escape。但它们都没有像我预期的那样返回。此外,我还尝试删除反斜杠:Regexp.new("[\w\s]+")=>/[w]+/但运气不好。然后我试着简单一点:str="[\w\s]+"=>"[w]+"它逃脱了。现在字符串如何保持原样并转换为正则表达式对象? 最佳答案

Ruby 用捕获的正则表达式模式替换字符串

我在将它翻译成Ruby时遇到了问题。这是一段JavaScript,它完全符合我的要求:functionget_code(str){returnstr.replace(/^(Z_.*):.*/,"$1")​​​​​​​​​​​​​​​​​​​​​​​​​​​;}我试过了gsub,sub,和replace但似乎没有一个能达到我的预期。以下是我尝试过的示例:"Z_sdsd:sdsd".gsub(/^(Z_.*):.*/){|capture|capture}"Z_sdsd:sdsd".gsub(/^(Z_.*):.*/,"$1")"Z_sdsd:sdsd".gsub(/^(Z_.*):.*/,